class A:
    __money = 1000  # 私有属性

    def __init__(self):
        self.num = 'a'

    def __haha(self):
        print('私有方法')

    def info(self):
        print(self.num)


class C:
    def __init__(self):
        self.num = 'c'

    def info(self):
        print(self.num)


class B(A):
    pass


b = B()
b.info()


class D(A, C):
    pass


d = D()  # 多继承,默认使用第一个父类的同名属性和方法
d.info()
print(D.mro())  # 打印继承关系


# 重写
class E(A):
    def info(self):
        super().info()
        self.num = '重写属性'
        print('被重写了')
        print(self.num)


e = E()
e.info()
